package chapter_01_config

import (
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
	"gorm.io/gorm/logger"
	"sync"
)

var db *gorm.DB

var once sync.Once

func NewMysqlConnection() *gorm.DB {
	once.Do(func() {
		db = OpenMysql()
	})
	return db
}

func OpenMysql() (db *gorm.DB) {
	mysqldb, err := gorm.Open(mysql.New(mysql.Config{
		//DriverName:
		DSN: "root:root@1234Ychao@tcp(192.168.10.20:3306)/gorm?charset=utf8&parseTime=True&loc=Local", // DSN data source name
	}), &gorm.Config{
		Logger:      logger.Default.LogMode(logger.Info),
		QueryFields: true, //QueryFields 模式中, 所有的模型字段（model fields）都会被根据他们的名字选择。
	})
	if err != nil {
		panic(err)
	}
	return mysqldb
}
